perm filename WALK.SAI[CMS,LCS] blob
sn#103188 filedate 1974-05-23 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00004 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 BEGIN "WALK"
C00004 00003 SUBR GOOSE
C00006 00004 α MAIN EXECUTION
C00008 ENDMK
C⊗;
BEGIN "WALK"
REQUIRE "MESGEM.HDR[SAI,BGB]" SOURCE_FILE;
DEFINE α="COMMENT";
DEFINE π="3.1415927";
DEFINE SUBR="SIMPLE PROCEDURE";
DEFINE ISUBR="SIMPLE INTEGER PROCEDURE";
DEFINE THRU="STEP 1 UNTIL";
DEFINE ⊂="BEGIN";
DEFINE ⊃="END";
INTEGER ROBOT,HEAD,RARM,LARM,BODY,RLEG,LLEG,RFOOT,LFOOT,B1;
SUBR INIT; α INITIALIZATION;
BEGIN "INIT"
MKUNIV;GEODPY;
B1←MKCUBE(7.0,.2,32.0);
ROBOT←INB3D("ROBOT[CMS,LCS]");
HEAD←FDNAME("HEAD");
RARM←FDNAME("RARM");
LARM←FDNAME("LARM");
BODY←FDNAME("BODY");
RLEG←FDNAME("RLEG");
LLEG←FDNAME("LLEG");
RFOOT←FDNAME("RFOOT");
LFOOT←FDNAME("LFOOT");
SHRINK(ROBOT,0.5,0.5,0.5);
ROTATE(ROBOT,0,π/4,0);
ROTATE(B1,0,π/4,0);TRANSL(-B1,0,-2.8,-15.9);
TRANSL(-ROBOT,7,0,0);
GEODPY;
END "INIT";
SUBR GOOSE;
BEGIN "GOOSE"
INTEGER I;
REAL DW,DQ,DF;
DF ← -.07;
DW ← π*10/180;
DQ ← π*7/180;
FOR I←1 THRU 5 DO
⊂ ROTATE(-RLEG,0,0,-DW);ROTATE(-LLEG,0,0,+DW);
ROTATE(-RFOOT,0,0,-DW/4);ROTATE(-LFOOT,0,0,+DW/4);
ROTATE(-LARM,-DQ,0,0);ROTATE(-RARM,DQ,0,0);
ROTATE(-HEAD,0,-DW,0);TRANSL(-BODY,-.2,DF,0);GEODPY;⊃;
BEGIN "FOREVER"
INTEGER L,K;
FOR L←1 THRU 3 DO
⊂ DW ← -DW;
DQ ← -DQ;
FOR K←1 THRU 2 DO
⊂ DF ← -DF;
FOR I←1 THRU 5 DO
⊂ ROTATE(-RLEG,0,0,-DW);ROTATE(-LLEG,0,0,+DW);
TRANSL(-BODY,-.2,DF,0);ROTATE(-RFOOT,0,0,-DW/4);
ROTATE(-HEAD,0,-DW,0);ROTATE(-LFOOT,0,0,+DW/4);
ROTATE(-LARM,-DQ,0,0);ROTATE(-RARM,DQ,0,0); GEODPY;⊃;⊃;⊃;
FOR L←1 THRU 10 DO
⊂ ROTATE(-BODY,0,0,2*-DW);TRANSL(-BODY,-.5,0,0);
TRANSL(BODY,0,-.4,0);GEODPY;⊃;
FOR L←1 THRU 14 DO
⊂ TRANSL(BODY,0,-.3,0);GEODPY;⊃;
END "FOREVER";
END "GOOSE";
α MAIN EXECUTION;
INIT;
GOOSE;
END "WALK";